iT邦幫忙

1

openCV-python:影像辨識的基礎指令及參數篇-1

max 2024-07-04 00:07:49775 瀏覽
  • 分享至 

  • xImage
  •  

在這篇文章中將把影像辨識的基礎指令以及參數做個簡單的紀錄,主要是為了幫助自己記錄下來不然每次都要找有點麻煩,希望能幫到各位。文章有點長可以用Ctrl+F去搜尋想要找的參數喔

1.讀入圖片

output = cv2.imread(img_url, parameter1)

1.img_url : 圖片路徑
2.parameter1 : 圖片讀入的方式有10種讀入方法

  • cv2.IMREAD_UNCHANGED : 讀入原始圖片
  • cv2.IMREAD_GRAYSCALE : 讀入灰階圖片
  • cv2.IMREAD_COLOR : 讀入彩色圖片
  • cv2.IMREAD_ANYCOLOR : 以任何可能的顏色格式讀入圖片
  • cv2.IMREAD_REDUCED_GRAYSCALE_2 : 讀入灰階圖片,讀入時大小為二分之一
  • cv2.IMREAD_REDUCED_COLOR_2 : 讀入彩色圖片,讀入時大小為二分之一
  • cv2.IMREAD_REDUCED_GRAYSCALE_4 : 讀入灰階圖片,讀入時大小為四分之一
  • cv2.IMREAD_REDUCED_COLOR_4 : 讀入彩色圖片,讀入時大小為四分之一
  • cv2.IMREAD_REDUCED_GRAYSCALE_8 : 讀入灰階圖片,讀入時大小為八分之一
  • cv2.IMREAD_REDUCED_COLOR_8 : 讀入彩色圖片,讀入時大小為八分之一

2.儲存圖片

cv2.imwrite(img_name, img)

1.img_name : 要儲存的圖片名稱及路徑
2.img : 要儲存的圖片


3.灰階處理

output = cv2.cvtColor(img, parameter1)

1.img : 要灰階的圖片
2.parameter1 : 色彩轉換參數,有5種不同轉換方法

  • cv2.COLOR_BGR2BGRA : RGB 轉換到 RGBA
  • cv2.COLOR_BGRA2BGR : RGBA 轉換到 RGB
  • cv2.COLOR_BGR2GRAY : RGB 轉換到 灰階
  • cv2.COLOR_BGR2HSV : RGB 轉換到 HSV
  • cv2.COLOR_RGB2HLS : RGB 轉換到 RSL

4.二值化

output = cv2.threshold(img, parameter1, parameter2, parameter3)

1.img : 要二值化的圖片
2.parameter1 : 閾值,一般使用 127,可自行調整
3.parameter2 : 最大灰度,一般使用 255,可自行調整
4.parameter3 : 二質化轉換參數,有五種不同的轉換方法

  • cv2.THRESH_BINARY : 如果大於 127 就等於 255,如果小於等於就為 0
  • cv2.THRESH_BINARY_INV : 如果大於 127 就等於 0,如果小於等於就為 255
  • cv2.THRESH_TRUNC : 如果大於 127 就等於 127,如果小於等於的話數值不變
  • cv2.THRESH_TOZERO : 如果大於 127 數值不變,如果小於等於就為 0
  • cv2.THRESH_TOZERO_INV : 如果大於 127 等於 0,如果小於等於的話數值不變

5.圖片解碼

output = cv2.imdecode(img_array, parameter1)

1.img_array : 圖片陣列
2.parameter1 : 圖片讀入的方式有4種讀入方法

  • cv2.IMREAD_UNC[han] : 讀入原始圖片
  • cv2.IMREAD_GRAYSCALE : 讀入灰階圖片
  • cv2.IMREAD_COLOR : 讀入彩色圖片
  • cv2.IMREAD_ANYCOLOR : 以任何可能的顏色格式讀入圖片

6.調整圖片尺寸

output = cv2.resize(img, (parameter1, parameter2), parameter3)

1.img : 要調整尺寸的圖片
2.parameter1 : 圖片要調整的x軸寬度
3.parameter2 : 圖片要調整的y軸高度
4.parameter3 : 圖片縮放的5種方法

  • cv2.INTER_NEAREST : 最近鄰插植
  • cv2.INTER_LINEAR : 雙線性插植
  • cv2.INTER_AREA : 使用像素區域關係進行重採樣
  • cv2.INTER_CUBIC : 4x4像素鄰域的雙三次插值
  • cv2.INTER_LANCZOS4 : 8x8像素鄰域的Lanczos插值

7.轉換圖片尺寸(圖片大小不變)

output = img.reshape([parameter1, parameter2])

1.img : 要調整尺寸的圖片
2.parameter1 : 圖片要轉換的x軸寬度
3.parameter2 : 圖片要轉換的y軸高度


8.輪廓搜索

contours = cv2.findContours(img, parameter1, parameter2)

1.img : 要偵測的圖片
2.parameter1 : 輪廓搜索的4種方法

  • cv2.RETR_LIST : 提取所有輪廓
  • cv2.RETR_EXTERNAL : 提取最外層的輪廓
  • cv2.RETR_CCOMP : 提取所有輪廓,會分成兩個組織關係
  • cv2.RETR_TREE : 提取所有輪廓,會返還所有的父子關係

3.parameter2 : 輪廓近似的2種方法

  • cv2.CHAIN_APPROX_NONE : 儲存所有輪廓
  • cv2.CHAIN_APPROX_SIMPLE : 會壓縮輪廓

先記錄這裡,後續再慢慢更新~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言